package com.yunke.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 分销商申请DTO
 *
 * @author yunke
 * @since 1.0.0
 */
@Data
@Schema(description = "分销商申请DTO")
public class YunkeDistributorApplyDto implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "分销商昵称")
    @NotBlank(message = "分销商昵称不能为空")
    private String nickname;

    @Schema(description = "联系手机号")
    @NotBlank(message = "联系手机号不能为空")
    private String mobile;

    @Schema(description = "联系微信号")
    private String wechat;

    @Schema(description = "收款账户类型（1支付宝 2微信 3银行卡）")
    @NotNull(message = "收款账户类型不能为空")
    private Integer accountType;

    @Schema(description = "收款账户")
    @NotBlank(message = "收款账户不能为空")
    private String accountInfo;

    @Schema(description = "收款户名")
    @NotBlank(message = "收款户名不能为空")
    private String accountName;

    @Schema(description = "邀请码（可选，填写上级分销商邀请码）")
    private String inviteCode;

    @Schema(description = "申请理由")
    private String applyReason;

    @Schema(description = "身份证号")
    private String idCard;

    @Schema(description = "身份证正面照")
    private String idCardFront;

    @Schema(description = "身份证反面照")
    private String idCardBack;

    @Schema(description = "扩展信息（JSON格式）")
    private String extInfo;
} 